document.write("");
document.write("");
//document.write("\n");
//document.write("\n");
var currentObj;
function RatingTool(target, target_name, instant_id, layer_id, caller_url)
{
this.target = target;
this.target_name = target_name;
this.instant_id = instant_id;
this.layer_id = layer_id;
if (caller_url != null)
this.caller_url = caller_url;
else
this.caller_url = '';
this.button_id = "rating_cbtn_3_" + target;
this.formWindow_id = "rating_win_3_" + target;
return;
}
RatingTool.prototype.ratingForm = function()
{
var button = Ext.get(this.button_id);
eval('currentObj = ' + this.instant_id + ';');
var iframeURL = "http://apps.hkedcity.net/tools/rating/rate.php?master_id=3&sub_id=" + this.target + "&lang=" + "&caller_url=" + encodeURIComponent(this.caller_url) + "&instant_id=" + encodeURIComponent(this.instant_id);
if (this.url_star_full != undefined) {
iframeURL += '&url_star_full='+encodeURIComponent(this.url_star_full);
}
if (this.url_star_half != undefined) {
iframeURL += '&url_star_half='+encodeURIComponent(this.url_star_half);
}
if (this.url_star_empty != undefined) {
iframeURL += '&url_star_empty='+encodeURIComponent(this.url_star_empty);
}
if (this.starWidth != undefined) {
iframeURL += '&starWidth='+encodeURIComponent(this.starWidth);
}
// create the window on the first click and reuse on subsequent clicks
if (!this.ratingWindow)
{
var panelObj = new Ext.Panel({
bodyCfg:{tag:'div' //Customize the body layout
,cls:'x-panel-body'
,children:[
Ext.apply([{tag: 'div', src: 'aaa'}, {tag:'iframe',
frameBorder :0,
cls :'x-managed-iframe',
src :iframeURL,
style :{width:'100%',height:'100%'}
}])
]
}
});
var win = new Ext.Window({
applyTo: "rating_c" + this.formWindow_id,
title: this.target_name,
layout: 'fit',
width: 260,
height: 150,
modal: true,
plain: true,
items: panelObj,
closable: true,
closeAction: 'hide',
buttons: [{
text: '關閉',
handler: function() {
win.hide();
}
}]
});
this.ratingWindow = win;
}
this.ratingWindow.addListener("hide", function(obj) {
currentObj.ratingList(true);
});
this.ratingWindow.show(button);
return;
}
RatingTool.prototype.ratingCloseDialog = function() {
if (this.ratingWindow) {
this.ratingWindow.hide();
}
}
RatingTool.prototype.ratingList = function(isRefresh) {
if (!isRefresh) {
// layer for the modal dialog, only init once
//document.write("");
var divTag = document.createElement("div");
divTag.id = "rating_c" + this.formWindow_id;
divTag.className ="x-hidden";
var oldOnload = window.onload || function () {};
window.onload = function ()
{
oldOnload();
document.body.appendChild(divTag);
}
}
// default loading icon
var layerObj = document.getElementById(this.layer_id);
if (layerObj) {
layerObj.innerHTML = '';
layerObj.style.visibility = 'visible';
}
var readerObj = new Ext.data.Record.create([
{ id: "id" },
{ name: "output" }
] );
var url = 'http://apps.hkedcity.net/tools/rating/handler.php?ACTION_ID=SHOW_RATE&city_id=&master_id=3&sub_id=' + encodeURIComponent(this.target) + '&lang=&login_url=javascript%3A+login_status_change%28%27login%27%29&rate_a_url=' + encodeURIComponent('javascript:' + this.instant_id + '.ratingForm();') + '&rate_a_id=' + encodeURIComponent(this.button_id);
if (this.url_star_full != undefined) {
url += '&url_star_full='+encodeURIComponent(this.url_star_full);
}
if (this.url_star_half != undefined) {
url += '&url_star_half='+encodeURIComponent(this.url_star_half);
}
if (this.url_star_empty != undefined) {
url += '&url_star_empty='+encodeURIComponent(this.url_star_empty);
}
if (this.starWidth != undefined) {
url += '&starWidth='+encodeURIComponent(this.starWidth);
}
var reader = new Ext.data.JsonReader({
totalProperty: "results",
root: "data",
id: "id"
}, readerObj);
var proxy = new Ext.data.ScriptTagProxy({
url: url
});
var ds = new Ext.data.Store({
proxy: proxy,
reader: reader
});
ds.on({
'load':{
fn: function(store, records, options){
var layerObj = document.getElementById(this.layer_id);
if (layerObj) {
var listHTML = records[0].get("output");
layerObj.innerHTML = listHTML;
layerObj.style.visibility = 'visible';
}
}
, scope: this
}
});
ds.load();
return;
}
function ratingAddLoadEvent(func) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = func;
}
else {
window.onload = function() {
if (oldonload) {
oldonload();
}
func();
}
}
}
// Preload the iframe, sync the login status
function ratingModuleCreateDivs(divId) {
var div = document.createElement('div');
if (div) {
div.id = divId;
document.body.appendChild(div);
}
}
function ratingModulePreload() {
ratingModuleCreateDivs('ratingPreloadFrame');
var preloadHTML = "";
var obj = document.getElementById('ratingPreloadFrame');
if (obj) {
obj.innerHTML = preloadHTML;
}
}
//ratingAddLoadEvent(ratingModulePreload);
//document.write('');
//ratingAddLoadEvent(ratingModulePreload);
// Listen for the closing of dialog
//var ratingModuleLastId = "";
//function ratingModuleCheckForMessages(){
// if (location.hash != ratingModuleLastId){
// ratingModuleLastId = location.hash;
// var instant_id = ratingModuleLastId.replace(/#ratingModuleRated(\w+)/g, "$1");
// eval(instant_id + '.ratingCloseDialog();');
// }
//}
//var ratingModuleInterval;
//function ratingModuleSetInterval() {
// ratingModuleInterval = setInterval(ratingModuleCheckForMessages, 20);
//}
//ratingAddLoadEvent(ratingModuleSetInterval);
//(function () {
//
// YAHOO.util.CrossFrame.onMessageEvent.subscribe(function (type, args, obj) {
// alert("application:" + args[0] + "\r\n" + args[1] + "\r\n"+ args[2]);
// var msg_array = args[0].split("_");
// switch (msg_array[0]) {
// case "CloseDialog":
// alert(msg_array[1]);
// break;
// }
// });
//
//})();